/*
 * malloc.h
 *
 *  Created on: 2019年11月26日
 *      Author: AnKun
 */

#ifndef MALLOC_H_
#define MALLOC_H_

#ifndef NULL
#define NULL 0
#endif

#define MEM_BLOCK_SIZE    32                                        // 内存块大小
#define MEM_BLOCK_NUMS    320                                       // 内存块数目
#define MEM_MAX_SIZE    (MEM_BLOCK_SIZE * MEM_BLOCK_NUMS)           // 内存池大小，32*320=10KB

// 导出函数声明，供外部调用
void mem_init(void);
void mem_free(void *p);
void *mem_malloc(unsigned int size);
void *mem_realloc(void *p, unsigned int size);
float mem_perused(void);
void mem_memset(void *dst, unsigned char val, unsigned int size);
void mem_memcpy(void *dst, const void *src, unsigned int size);
unsigned int mem_getused(void);
unsigned int mem_getfree(void);

#endif /* MALLOC_H_ */
